js Array中 filter、map和reduce的用法 发表于 2016-08-24 | 分类于 js Array | js filter 根据回调函数的条件,返回对应的数组。 1234var arr = [1,2,3,4,5];arr.filter(function(elem){ return elem > 2}) //[3,4,5] js map 对每个元素进行操作,并返回新的数组。 1234var arr = [1,2,3,4,5];arr.map(function(elem){ return elem * 2}) //[2,4,6,8,10] js reduce 通过回调函数不断累计后返回一个值。 1234var arr = [1,2,3,4,5];arr.reduce(function(result, elem){ return result + elem}, 0) //15 实战 初始条件 123456789101112131415161718192021222324252627var students = [ { name:'小红', age:22, score:80 }, { name:'小白', age:21, score:66 }, { name:'小琦', age:27, score:77 }, { name:'小明', age:20, score:85 }, { name:'小二', age:25, score:90 }]; 筛选出年龄大于或等于22岁的同学,其成绩的平均值。 用filter筛选年龄大于或等于22的同学 用map得到人数 用reduce计算成绩之和 12345678910111213var count = 1;students.filter(function(ele, index){ return ele.age >= 22}).map(function(obj, index){ count = index+1; return obj;}).reduce(function(a, b){ return a+b.score},0)/count